package com.promise.jokerdream.database.dao

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import com.promise.jokerdream.database.entity.TaskGroupConfigEntity

/**
 * 任务组配置数据访问对象
 */
@Dao
interface TaskGroupConfigDao {

    @Insert
    suspend fun insert(config: TaskGroupConfigEntity)
    
    /**
     * 更新任务组配置
     */
    @Update
    suspend fun update(config: TaskGroupConfigEntity)
    
    /**
     * 根据用户ID获取所有任务组配置
     */
    @Query("SELECT * FROM task_group_config WHERE userId = :userId")
    suspend fun getByUserId(userId: String): List<TaskGroupConfigEntity>
    
    /**
     * 根据任务组ID获取配置
     */
    @Query("SELECT * FROM task_group_config WHERE groupId = :groupId LIMIT 1")
    suspend fun getByGroupId(groupId: Long): TaskGroupConfigEntity?
    
    /**
     * 删除任务组配置
     */
    @Delete
    suspend fun delete(config: TaskGroupConfigEntity)
    
    /**
     * 根据用户ID删除所有任务组配置
     */
    @Query("DELETE FROM task_group_config WHERE userId = :userId")
    suspend fun deleteByUserId(userId: String)
    
    /**
     * 根据任务组ID删除配置
     */
    @Query("DELETE FROM task_group_config WHERE groupId = :groupId")
    suspend fun deleteByGroupId(groupId: Long)
}

